// import com.alibaba.druid.DbType;
// import com.alibaba.druid.sql.ast.*;
// import com.alibaba.druid.sql.visitor.SQLASTVisitor*;

// import java.util.ArrayList;
// import java.util.std::list;
#pragma once
#include <string>
#include <list>
#include "../SQLStatementImpl.h"
#include "SQLDropStatement.h"

class SQLName;
class SQLASTVisitor;
class SQLObject;
class DbType;

class SQLDropOfflineModelStatement 
:virtual public SQLStatementImpl ,
virtual public SQLDropStatement,
virtual public SQLReplaceable {
    public:
    SQLName_ptr  name;
    BOOL_ptr ifExists;

    SQLDropOfflineModelStatement() ;

    SQLDropOfflineModelStatement(DbType_ptr   dbType);
  SHAREDOBJECT(SQLDropOfflineModelStatement);

    void accept0(SQLASTVisitor_ptr visitor);

    SQLObject_list_ptr getChildren();

    SQLName_ptr  getName() ;

    void setName(SQLName_ptr  name) ;

    string_ptr  getTableGroupName();

    BOOL_ptr isIfExists();

    void setIfExists(BOOL_ptr ifNotExists);

    BOOL_ptr replace(SQLExpr_ptr expr, SQLExpr_ptr target);
};
